Changing the ASP.NET AJAX Control Toolkit Calendar display mode
The ASP.NET AJAX Control Toolkit’s Calendar (Click Here To See The CalendarExtender Control In Action) is a very nice control that allows you implement a client side dynamic calendar for date-picking functionality. One interesting feature is the ability to change the calendar from the default “days” mode (shows the days in one month) to “months” mode (showing all of the months in the current year) by clicking on the calendar title. Another click on the title will change the calendar into “years” mode, which shows 12 years at a time.
One feature that would be nice is the ability to start the calendar control in any of the desired modes (“days”, “months”, or “years”) depending on the type of interaction with the calendar that is most appropriate. For example, a current project of mine requires entering employee hire dates — which are almost always at least a few years old.
The following is some simple code that allows you to get the desired functionality (in this case, we switch to the “years” mode) by handling the Calendar’s OnClientShown event.
Step 0 — The initial Calendar control hooked up to a TextBox
<asp:TextBox ID="txtTitleLength" runat="server"></asp:TextBox>
<AjaxControlToolkit:CalendarExtender ID="calTitleLength" runat="server"
TargetControlID="txtTitleLength">
</AjaxControlToolkit:CalendarExtender>
Step 1 — Add a callback to the OnClientShown event (here: “calendarShown”)
<asp:TextBox ID="txtTitleLength" runat="server"></asp:TextBox>
<AjaxControlToolkit:CalendarExtender ID="calTitleLength" runat="server"
TargetControlID="txtTitleLength"
OnClientShown="calendarShown">
</AjaxControlToolkit:CalendarExtender>
Step 2 — Handle the OnClientShown event (which takes 2 parameters: “sender, e”) and then call the calendar control’s _switchMode() method
function calendarShown(sender, e) { sender._switchMode("years"); }
That’s all there is to it! One note: you must call the switchMode() method in the OnClientShown event and not the OnClientShowing event for the effect to work properly.
Filed under: Code, Tips | 14 Comments
thank you.
what do you think scott? can i change the view of calendar to another language like farsi?
with regards.
techind@gmail.com
I came up with another problem in Ajax Calendar Control. Is it possible to just display months in the Ajax Calendar control. I mean, I dont want to display the dates, I just want to display the months. Is there any property in Calendar control which sets the visibility of the Date to False.
This works for me, it is a wonderful article.
I have another question in the calendar control. when I use this control it works for me. But I dont want to display the date. What I mean is if the user selects a particular month, I want to set the date of that particular month to the end of the date. Suppose, user selects November month in the control then I dont want to show the dates, instead of that I just want to pop the textbox with the date 11/30/2008. Is this possible with the calendar control. Any help is appreciated.
Thanks
kranti
hello it is test. WinRAR provides the full RAR and ZIP file support, can decompress CAB, GZIP, ACE and other archive formats.
kfkioiitmipnibxmjevbxudpqylqvfvzgajhello
Thanks a lot mayn, this is wat I was looking for.
Kewl
I need a calender control like this
< >
when i click 1st arrow the year has to change 2009
and the last arrow is 2011
the middle two has to be month changing
can any 1 help me
<>
“<>”
currently we are having only 2 side arrows for calender control
i want to add two more arrows
for month and year
there is only two side arrows for a calender control
if we want to from jan 2010 to jan 2020
mean we have to click 120 times the right side arrow or switch to years mode this
time waste for a user
without using any dropdownlists how can we add two side arrows for year and month click change events for each side.
plz help me
Do you mind if I quote a few of your posts as long as I provide
credit and sources back to your website? My blog is in the very same area of interest as yours and
my users would really benefit from some of the information you provide here.
Please let me know if this okay with you. Cheers!
Hello mates, how is everything, and what you desire
to say on the topic of this piece of writing, in my view its in fact awesome in favor of me.
I read this piece of writing fully regarding the difference of most up-to-date and earlier technologies, it’s amazing article.